package com.lzy.chat.c_service;

import com.lzy.chat.a_entity.User;

import java.util.List;
import java.util.Map;

public interface UserService {
    /**
     * 注册用户
     *
     * @param user 用户对象
     * @return Integer 用户id
     */
    Integer register(User user);

    /**
     * 用户验证
     *
     * @param email 用户邮箱
     * @param phone 用户手机号
     * @param type  是否是注册
     * @return String  用户验证码
     */
    Map<String, Object> verify(String email, String phone, Integer type);


    /**
     * 根据id获取用户信息(去除敏感信息)
     *
     * @param id 用户id
     * @return user对象信息
     */
    User getInfoById(Integer id);

    /**
     * 修改user信息
     *
     * @param user user信息
     */
    void updateUserInfo(User user);

    /**
     * 更新用户密码
     *
     * @param newPassword 新密码
     * @param oldPassword 旧密码
     * @param user        用户对象
     */
    void updateUserPassword(String newPassword, String oldPassword, User user);

    /**
     * 找回用户密码
     *
     * @param newPassword 新密码
     * @param id          用户id
     */
    void findUserPassword(String newPassword, Integer id);

    /**
     * 使用关键字检索用户id或名字
     *
     * @param keyword 关键字
     * @return 用户list
     */
    List<User> getUsersByIdOrName(String keyword);
    
}
